﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using blackhouse.Payments.Data.Sql;

namespace blackhouse.Payments.Data {
    public abstract class PaymentsDataFactory : blackhouse.InstanceFactory<PaymentsDataFactory> {

        #region Instance

        /// <summary>
        /// Tworzy instancję PaymentsDataFactory na podstawie wpisu w configu. Wpis o kluczu PaymentsDataFactory powinien być deklaracją klasy dziedziczącej po PaymentsDataFactory. Domyślnie klasa zwraca SqlPaymentsDataFactory
        /// </summary>
        /// <returns>PaymentsDataFactory - fabrykę dostępu do danych</returns>
        public static PaymentsDataFactory Instance() {
            return Instance("PaymentsDataFactory", typeof(SqlPaymentsDataFactory));
        }

        #endregion

        public abstract IPaymentsDataAccess GetPaymentDataAccess();

    }
}